In computational complexity theory, it is known that the time to solve some complex computational problems increases rapidly as the size of the problem increases. The execution time of a process to solve such a computational problem is not easily calculable a priori, and is different among multiple algorithms, with radically different approaches for the same computational problem. Further, it is difficult or impossible to know in advance which algorithm to choose as the most efficient process to solve a given problem.
Among the complex computational problems is a decision problem categorized as nondeterministic polynomial time-complete. Once a solution to such a problem is given, it can be verified quickly, although there is no known efficient process to find the solution. Examples of such problems include a graph problem, finding nearly-connected loops in a two-dimensional graph, often mapped as the Traveling Salesman problem, and the prime factorization problem, which is central to modern forms of cryptography.
Regardless of the issues with these complex computational problems, users still wish to quickly solve these complex computational problems. Moreover, as computational resources are finite, users must carefully manage the computational resources.